
add_library(EngineGpuKernels
    ActiveRadiationSources.cuh
    Array.cuh
    AttackerProcessor.cuh
    Base.cuh
    CellConnectionProcessor.cuh
    CellProcessor.cuh
    ClusterProcessor.cuh
    ConstantMemory.cu
    ConstantMemory.cuh
    Constants.cuh
    ConstructorHelper.cuh
    ConstructorProcessor.cuh
    CudaGeometryBuffers.cu
    CudaGeometryBuffers.cuh
    CudaMemoryManager.cuh
    CudaNumberGenerator.cuh
    CudaShapeGenerator.cuh
    CudaTOProvider.cu
    CudaTOProvider.cuh
    DataAccessKernels.cu
    DataAccessKernels.cuh
    DataAccessKernelsService.cu
    DataAccessKernelsService.cuh
    DebugKernels.cu
    DebugKernels.cuh
    Definitions.cuh
    Definitions.h
    DensityMap.cuh
    DepotProcessor.cuh
    DetonatorProcessor.cuh
    DigestorProcessor.cuh
    EditKernels.cu
    EditKernels.cuh
    EditKernelsService.cu
    EditKernelsService.cuh
    EnergyParticleProcessor.cuh
    ForceFieldKernels.cu
    ForceFieldKernels.cuh
    GarbageCollectorKernels.cu
    GarbageCollectorKernels.cuh
    GarbageCollectorKernelsService.cu
    GarbageCollectorKernelsService.cuh
    GeneratorProcessor.cuh
    Genome.cuh
    GenomeTO.cuh
    GeometryKernels.cu
    GeometryKernels.cuh
    GeometryKernelsService.cu
    GeometryKernelsService.cuh
    HashMap.cuh
    HashSet.cuh
    InjectorProcessor.cuh
    List.cuh
    Macros.cuh
    Map.cuh
    MapSectionCollector.cuh
    Math.cuh
    MaxAgeBalancer.cu
    MaxAgeBalancer.cuh
    MuscleProcessor.cuh
    NeuronProcessor.cuh
    Object.cuh
    Objects.cu
    Objects.cuh
    ObjectFactory.cuh
    Operations.cuh
    ParameterCalculator.cuh
    Physics.cuh
    PreprocessedSimulationData.cuh
    ReconnectorProcessor.cuh
    SelectionResult.cuh
    SensorProcessor.cuh
    SignalProcessor.cuh
    SimulationCudaFacade.cu
    SimulationCudaFacade.cuh
    SimulationData.cu
    SimulationData.cuh
    SimulationKernels.cu
    SimulationKernels.cuh
    SimulationKernelsService.cu
    SimulationKernelsService.cuh
    SimulationParametersUpdateService.cu
    SimulationParametersUpdateService.cuh
    SimulationStatistics.cuh
    StatisticsService.cu
    StatisticsService.cuh
    StatisticsKernelsService.cu
    StatisticsKernelsService.cuh
    StatisticsKernels.cu
    StatisticsKernels.cuh
    TestKernels.cu
    TestKernels.cuh
    TestKernelsService.cu
    TestKernelsService.cuh
    TO.cuh
    TOProvider.cu
    TOProvider.cuh
    Util.cuh
    )

target_link_libraries(EngineGpuKernels Base)
target_link_libraries(EngineGpuKernels EngineInterface)
target_link_libraries(EngineGpuKernels OpenGL::GL)
target_link_libraries(EngineGpuKernels glad::glad)

# See https://gitlab.kitware.com/cmake/cmake/-/issues/17520
set_property(TARGET EngineGpuKernels PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON)